package com.yan.design.java8.k5;

import java.lang.annotation.*;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;

/**
 * 自定义注解
 * @author shengren.yan
 * @create 2022-08-18
 */
@Repeatable(MyAns.class) //重复注解
// 用于说明注解的生命周期
@Retention(RetentionPolicy.RUNTIME)
// 注解修饰在哪里  TYPE_PARAMETER : (这个是类型注解)    public void setName(@MyAn("aaa") String name){} 需要配合反射使用
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE,TYPE_PARAMETER})
// 生产javac文档
//@Documented
// 注解拥有继承性，子类也有该注解
//@Inherited
// @SuppressWarnings()  //可参考这个注解，进行调整
public @interface MyAn {

    String value() default "默认值";
//    String value2();

}
